package com.lgc.javathread.joinTest.test1;

/**
 * t.join()方法只会使当前线程进入等待池并等待t线程执行完毕后才会被唤醒。并不影响同一时刻处在运行状态的其他线程。
 * 这里只要记住，哪个线程挂起，取决于在哪个线程上调用x.join方法，而不是影响到所有的线程
 */
public class JoinTest {
    public static void main(String[] args) throws InterruptedException {
        JoinThread j1=new JoinThread("小明");
        JoinThread j2=new JoinThread("小红");
        j1.start();

        // 查看线程优先级
        System.out.println("线程优先级："+String.valueOf(j1.getPriority()));

        j1.join(); //使当前线程进入等待池(即主线程），等待j1线程执行完毕后才会被唤醒

        System.out.println("主线程中调用j1.join()了，所以等j1线程结束后，主线程才开始运行");

        j2.start();

        System.out.println("主线程结束");

        /******线程优先级*****
        Java线程的优先级用整数表示，取值范围是1~10，Thread类有以下三个静态常量：
        static int MAX_PRIORITY
        线程可以具有的最高优先级，取值为10。
        static int MIN_PRIORITY
        线程可以具有的最低优先级，取值为1。
        static int NORM_PRIORITY
        分配给线程的默认优先级，取值为5。

        Thread类的setPriority()和getPriority()方法分别用来设置和获取线程的优先级。*/
    }
}
